var PAGE = {
	skip : 0,
	limit : 20
};

var querystring = function (key) {
	var re = new RegExp('(?:\\?|&)' + key + '=(.*?)(?=&|$)', 'gi');
	var r = [],
	m;
	while ((m = re.exec(document.location.search)) != null)
		r.push(m[1]);
	return r;
}

var renderError = function(err) {
	console.error(err);
};

var putToken = function (param, callback) {
	$.ajax({
		url : '/entity/auth/token',
		method : 'put',
		dataType : 'json',
		cache : false,
		data : param,
		success : function (result) {
			console.log(result);
			callback(null, result.token);
		},
		error : function (jqXHR, textStatus, errorThrown) {
			callback({
				message : '用户名密码错误。'
			});
		}
	});
};

var getConfig = function (type, callback) {
	$.ajax({
		url : '/entity/config/' + type + '?token=' + querystring('token'),
		method : 'get',
		dataType : 'json',
		cache : false,
		success : function (config) {
			callback(null, config);
		},
		statusCode : {
			401 : function() {
				alert('没有权限访问当前功能。');
			},
			403 : function() {
				alert('没有权限访问当前功能。');
			}
		},
		error : function (jqXHR, textStatus, errorThrown) {
			callback(errorThrown);
		}
	});
};

var putConfig = function (type, param, callback) {
	$.ajax({
		url : '/entity/config/' + type + '?token=' + querystring('token'),
		method : 'put',
		dataType : 'json',
		cache : false,
		data : param,
		success : function (config) {
			callback(null, config);
		},
		statusCode : {
			401 : function() {
				alert('没有权限访问当前功能。');
			},
			403 : function() {
				alert('没有权限访问当前功能。');
			}
		},
		error : function (jqXHR, textStatus, errorThrown) {
			callback(errorThrown);
		}
	});
};

var getMenus = function (param, callback) {
	$.ajax({
		url : '/entity/menu?token=' + querystring('token'),
		method : 'get',
		dataType : 'json',
		cache : false,
		data : param,
		success : function (cells) {
			callback(null, cells);
		},
		statusCode : {
			401 : function() {
				alert('没有权限访问当前功能。');
			},
			403 : function() {
				alert('没有权限访问当前功能。');
			}
		},
		error : function (jqXHR, textStatus, errorThrown) {
			callback(errorThrown);
		}
	});
};

var postMenu = function (param, callback) {
	$.ajax({
		url : '/entity/menu?token=' + querystring('token'),
		method : 'post',
		dataType : 'json',
		cache : false,
		data : param,
		success : function (config) {
			callback(null, config);
		},
		statusCode : {
			401 : function() {
				alert('没有权限访问当前功能。');
			},
			403 : function() {
				alert('没有权限访问当前功能。');
			}
		},
		error : function (jqXHR, textStatus, errorThrown) {
			callback(errorThrown);
		}
	});
};

var putMenu = function (id, param, callback) {
	$.ajax({
		url : '/entity/menu/' + id + '?token=' + querystring('token'),
		method : 'put',
		dataType : 'json',
		cache : false,
		data : param,
		success : function (config) {
			callback(null, config);
		},
		statusCode : {
			401 : function() {
				alert('没有权限访问当前功能。');
			},
			403 : function() {
				alert('没有权限访问当前功能。');
			}
		},
		error : function (jqXHR, textStatus, errorThrown) {
			callback(errorThrown);
		}
	});
};

var deleteMenu = function (id, callback) {
	$.ajax({
		url : '/entity/menu/' + id + '?token=' + querystring('token'),
		method : 'delete',
		cache : false,
		success : function () {
			callback(null);
		},
		statusCode : {
			401 : function() {
				alert('没有权限访问当前功能。');
			},
			403 : function() {
				alert('没有权限访问当前功能。');
			}
		},
		error : function (jqXHR, textStatus, errorThrown) {
			callback(errorThrown);
		}
	});
};

var getAdmins = function (param, callback) {
	$.ajax({
		url : '/entity/admin?token=' + querystring('token'),
		method : 'get',
		dataType : 'json',
		cache : false,
		data : param,
		success : function (result) {
			callback(null, result);
		},
		statusCode : {
			401 : function() {
				alert('没有权限访问当前功能。');
			},
			403 : function() {
				alert('没有权限访问当前功能。');
			}
		},
		error : function (jqXHR, textStatus, errorThrown) {
			callback(errorThrown);
		}
	});
};

var postAdmin = function(param, callback) {
	$.ajax({
		url : '/entity/admin?token=' + querystring('token'),
		method : 'post',
		dataType : 'json',
		cache : false,
		data : param,
		success : function (config) {
			callback(null, config);
		},
		statusCode : {
			401 : function() {
				alert('没有权限访问当前功能。');
			},
			403 : function() {
				alert('没有权限访问当前功能。');
			}
		},
		error : function (jqXHR, textStatus, errorThrown) {
			callback(errorThrown, jqXHR.responseJSON);
		}
	});
};

var putAdmin = function(id, param, callback) {
	$.ajax({
		url : '/entity/admin/' + id + '?token=' + querystring('token'),
		method : 'put',
		dataType : 'json',
		cache : false,
		data : param,
		success : function (config) {
			callback(null, config);
		},
		statusCode : {
			401 : function() {
				alert('没有权限访问当前功能。');
			},
			403 : function() {
				alert('没有权限访问当前功能。');
			}
		},
		error : function (jqXHR, textStatus, errorThrown) {
			callback(errorThrown, jqXHR.responseJSON);
		}
	});
};

var getWaiters = function (param, callback) {
	$.ajax({
		url : '/entity/waiter?token=' + querystring('token'),
		method : 'get',
		dataType : 'json',
		cache : false,
		data : param,
		success : function (result) {
			callback(null, result);
		},
		statusCode : {
			401 : function() {
				alert('没有权限访问当前功能。');
			},
			403 : function() {
				alert('没有权限访问当前功能。');
			}
		},
		error : function (jqXHR, textStatus, errorThrown) {
			callback(errorThrown);
		}
	});
};

var postWaiter = function(param, callback) {
	$.ajax({
		url : '/entity/waiter?token=' + querystring('token'),
		method : 'post',
		dataType : 'json',
		cache : false,
		data : param,
		success : function (config) {
			callback(null, config);
		},
		statusCode : {
			401 : function() {
				alert('没有权限访问当前功能。');
			},
			403 : function() {
				alert('没有权限访问当前功能。');
			}
		},
		error : function (jqXHR, textStatus, errorThrown) {
			callback(errorThrown, jqXHR.responseJSON);
		}
	});
};

var putWaiter = function(id, param, callback) {
	$.ajax({
		url : '/entity/waiter/' + id + '?token=' + querystring('token'),
		method : 'put',
		dataType : 'json',
		cache : false,
		data : param,
		success : function (config) {
			callback(null, config);
		},
		statusCode : {
			401 : function() {
				alert('没有权限访问当前功能。');
			},
			403 : function() {
				alert('没有权限访问当前功能。');
			}
		},
		error : function (jqXHR, textStatus, errorThrown) {
			callback(errorThrown, jqXHR.responseJSON);
		}
	});
};

var putCustomerPassword = function(param, callback) {
	$.ajax({
		url : '/entity/customer/password?token=' + querystring('token'),
		method : 'put',
		dataType : 'json',
		cache : false,
		data : param,
		success : function (config) {
			callback(null, config);
		},
		statusCode : {
			401 : function() {
				alert('没有权限访问当前功能。');
			},
			403 : function() {
				alert('没有权限访问当前功能。');
			}
		},
		error : function (jqXHR, textStatus, errorThrown) {
			callback(errorThrown, jqXHR.responseJSON);
		}
	});
};

var getOrders = function (param, callback) {
	$.ajax({
		url : '/entity/order?token=' + querystring('token'),
		method : 'get',
		dataType : 'json',
		cache : false,
		data : param,
		success : function (result) {
			callback(null, result);
		},
		statusCode : {
			401 : function() {
				alert('没有权限访问当前功能。');
			},
			403 : function() {
				alert('没有权限访问当前功能。');
			}
		},
		error : function (jqXHR, textStatus, errorThrown) {
			callback(errorThrown);
		}
	});
};
